// 验证token合法性
const basicAuth = require('basic-auth');
const jwt = require('jsonwebtoken');
const security = require('./tokentime.js').security
class Auth {
    // 存储器
    get m() {
        return (req, res, next) => {
            // 接收前端提交在header中传输的toen
            const token = basicAuth(req);
            if(!token || !token.name){
                return res.status(401).sed({status:401,msg:'没有权限访问'})
            }
            try{
                // 利用jwx.verify进行校验token是否合法，如果合法会返回一个包含uid的对象
                //如果不合法就会进入到catch中
                const authcode = jwt.verify(token.name,security.secretkey)
            }catch(error){
                if(error.name =="TokenExpiredError"){
                    return res.status(401).send({status:401,msg:"账号过期，请重新登录"})
                }else{
                    return res.status(401).send({status:401,msg:"没有访问权限"})
                }
            }
            // 校验成功，调用next方法通知接口可以进行下一步操作，执行回调函数
            next()

        }
    }
}
module.exports = {
    Auth
}